package com.xukai.springboot.service.statistics;

import com.xukai.springboot.datalayer.statis.StatisSceneMapper;
import com.xukai.springboot.entity.statistics.t_statis_scene;
import com.xukai.springboot.entity.statistics.t_statis_scene_chart;
import com.xukai.springboot.entity.statistics.t_statis_scene_theme;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

@Service
public class StatisSceneService {

    /**
     *
     */
    @Autowired
    StatisSceneMapper statisSceneMapper;

    /**
     * 获取场景列表
     */
    public List<t_statis_scene> GetSceneList(String name, int state, int start, int pageSize) {
        return statisSceneMapper.GetSceneList(name, state, start, pageSize);
    }

    /**
     * 获取场景详细信息
     */
    public t_statis_scene GetScene(int id) {
        return statisSceneMapper.GetScene(id);
    }

    /**
     * 新建场景基本信息
     */
    public t_statis_scene AddSceneBase(t_statis_scene data) {
        data.setCreateTime(new Date());
        statisSceneMapper.AddSceneBase(data);
        return data;
    }

    /**
     * 修改场景基本信息
     */
    public void UpdateSceneBase(t_statis_scene data) {
        statisSceneMapper.UpdateSceneBase(data);
    }


    /**
     * 增加图表
     */
    public t_statis_scene_chart AddChart(t_statis_scene_chart chartData) {
        int maxSort = statisSceneMapper.GetMaxSort(chartData.getSceneID());
        chartData.setSort(maxSort + 1);
        statisSceneMapper.AddChart(chartData);
        return chartData;
    }

    /**
     * 获取图表列表
     */
    public List<t_statis_scene_chart> GetChartList(int sceneID, int start, int pageSize) {
        return statisSceneMapper.GetChartList(sceneID, start, pageSize);
    }


    /**
     * 删除图表
     */
    public void DelChart(int id) {
        statisSceneMapper.DelChart(id);
    }

    /**
     * 删除场景
     */
    public void DelScene(int id) {
        statisSceneMapper.DelChartBySceneID(id);
        statisSceneMapper.DelScene(id);
    }

    /**
     * 获取场景总数
     *
     * @param name
     * @param state
     * @return
     */
    public int GetSceneCount(String name, int state) {
        return statisSceneMapper.GetSceneCount(name, state);
    }

    /**
     * 获取图表数据总数
     *
     * @return
     */
    public int GetChartCount(int id) {
        return statisSceneMapper.GetChartCount(id);
    }

    /**
     * 获取主题列表
     */
    public List<t_statis_scene_theme> GetThemeList() {
        return statisSceneMapper.GetThemeList();
    }

    /**
     * 获取主题详细信息
     */
    public t_statis_scene_theme GetTheme(int id) {
        return statisSceneMapper.GetTheme(id);
    }

    /**
     * @param sceneID
     * @param chartID
     * @return
     */
    public boolean ChartIsExist(int sceneID, int chartID) {
        if (statisSceneMapper.ChartIsExist(sceneID, chartID) == 0) {
            return false;
        }
        return true;
    }

    /**
     * 修改排序
     *
     * @param SceneID
     * @param chartID
     * @param sort
     */
    public void UpdateChartSort(int SceneID, String width, String height, int chartID, int sort) {
        statisSceneMapper.UpdateChartSort(SceneID, width, height, chartID, sort);
    }


}
